package com.ccit.springbootlaw.service;

import com.ccit.springbootlaw.pojo.Law;
import com.ccit.springbootlaw.pojo.PageBean;

import java.util.Date;

// 法律服务接口，定义了法律信息的增删改查操作
public interface LawService {

    /**
     * 根据ID查询法律信息
     *
     * @param id 法律ID
     * @return 法律信息对象
     */
    Law findById(int id);

    /**
     * 根据多条件查询法律信息
     *
     * @param law       包含查询条件的法律对象
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param page/100  页码
     * @param page%100  每页长度
     * @return 法律信息列表
     */
    PageBean<Law> findByCriteria(Law law, Date startTime, Date endTime, int page);

    /**
     * 插入新的法律信息
     *
     * @param law 法律对象
     * @return 插入结果，返回受影响的行数
     */
    int insertLaw(Law law);

    /**
     * 更新法律信息
     *
     * @param law 包含更新信息的法律对象
     * @return 更新结果，返回受影响的行数
     */
    int updateLaw(Law law);

    /**
     * 删除法律信息
     *
     * @param id 法律ID
     * @return 删除结果，返回受影响的行数
     */
    int deleteLawById(int id);

    /**
     * 查询所有法律信息
     *
     * @param page/100 页码
     * @param page%100 每页长度
     * @return 法律信息列表
     */
    PageBean<Law> findAllLaws(int page);
}